/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
using Aliyun.Acs.Core;
using System.Collections.Generic;

namespace Aliyun.Acs.Rds.Model.V20140815
{
    public class DescribeParameterTemplatesResponse : AcsResponse
    {

        private string engine;

        private string engineVersion;

        private string parameterCount;

        private List<TemplateRecord> parameters;

        public string Engine
        {
            get
            {
                return engine;
            }
            set
            {
                engine = value;
            }
        }

        public string EngineVersion
        {
            get
            {
                return engineVersion;
            }
            set
            {
                engineVersion = value;
            }
        }

        public string ParameterCount
        {
            get
            {
                return parameterCount;
            }
            set
            {
                parameterCount = value;
            }
        }

        public List<TemplateRecord> Parameters
        {
            get
            {
                return parameters;
            }
            set
            {
                parameters = value;
            }
        }

        public class TemplateRecord
        {

            private string parameterName;

            private string parameterValue;

            private ForceModifyEnum? forceModify;

            private ForceRestartEnum? forceRestart;

            private string checkingCode;

            private string parameterDescription;

            public string ParameterName
            {
                get
                {
                    return parameterName;
                }
                set
                {
                    parameterName = value;
                }
            }

            public string ParameterValue
            {
                get
                {
                    return parameterValue;
                }
                set
                {
                    parameterValue = value;
                }
            }

            public ForceModifyEnum? ForceModify
            {
                get
                {
                    return forceModify;
                }
                set
                {
                    forceModify = value;
                }
            }

            public ForceRestartEnum? ForceRestart
            {
                get
                {
                    return forceRestart;
                }
                set
                {
                    forceRestart = value;
                }
            }

            public string CheckingCode
            {
                get
                {
                    return checkingCode;
                }
                set
                {
                    checkingCode = value;
                }
            }

            public string ParameterDescription
            {
                get
                {
                    return parameterDescription;
                }
                set
                {
                    parameterDescription = value;
                }
            }

            public enum ForceModifyEnum
            {

                TRUE,
                FALSE,
            }

            public enum ForceRestartEnum
            {

                FALSE,
                TRUE,
            }
        }
    }
}